package account

import (
	"hobby-mate/common"
	"hobby-mate/dao/account"
)

// CreateAccount 创建账号请求参数
func CreateAccount(dto *CreateAccountDTO) (string, error) {
	// 1.新增账户
	accountId, err := account.AddUser(dto.Username, dto.Password)
	if err != nil {
		return "mysql Error", err
	}
	return accountId, nil

}

// Login 登录
func Login(dto *LoginDTO) (string, error) {
	// 1.账户登录
	result, err := account.QueryUserByCondition(dto.Username, dto.Password)
	if err != nil {
		return "", err
	}
	// 2校验账户是否存在
	if result.AccountId == "" {
		return "", common.BusinessError("账户不存在")
	}
	// 3.颁发token
	token, err := common.GenerateToken(dto.Username, result.AccountId)
	if err != nil {
		return "", err
	}
	return token, nil
}

// QueryUserByCondition 分页查询用户
// @param query 分页查询条件 页码和每页大小
// 条件：
// 1.账户ID 2.账户名 3.登录名
// 4.邮箱 5.电话号码 6.创建时间范围 7.更新时间范围
// @return entity.Account 用户实体
func QueryUserByCondition(query *common.PageQuery) (*common.PageResult, error) {
	result, err := account.QueryUserByPageCondition(query)
	if err != nil {
		return nil, err
	}
	return result, nil

}
